<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>MiXiM: phyLayer - physical layer modules</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">MiXiM
   &#160;<span id="projectnumber">2.3</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('a00510.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#groups">Modules</a>  </div>
  <div class="headertitle">
<div class="title">phyLayer - physical layer modules</div>  </div>
<div class="ingroups"><a class="el" href="a00508.html">nic - network interfaces</a></div></div>
<div class="contents">
<div class="dynheader">
Collaboration diagram for phyLayer - physical layer modules:</div>
<div class="dyncontent">
<center><table><tr><td><img src="a00510.png" border="0" alt="" usemap="#a00510"/>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00053.html">ConnectionManagerAccess</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic class for all physical layers, please don't touch!!  <a href="a00053.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00029.html">BasePhyLayer</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="a00029.html" title="The BasePhyLayer represents the physical layer of a nic.">BasePhyLayer</a> represents the physical layer of a nic.  <a href="a00029.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html">ChannelInfo</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class is used by the <a class="el" href="a00029.html" title="The BasePhyLayer represents the physical layer of a nic.">BasePhyLayer</a> to keep track of the AirFrames on the channel.  <a href="a00043.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00133.html">MacToPhyControlInfo</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores information which is needed by the physical layer when sending a MacPkt.  <a href="a00133.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html">MacToPhyInterface</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the methods provided by the phy to the mac layer.  <a href="a00134.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html">PhyToMacControlInfo</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controlinfo for packets which are send from Physical layer to the MAC layer.  <a href="a00177.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00182.html">RadioStateAnalogueModel</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This special <a class="el" href="a00009.html" title="Interface for the analogue models of the physical layer.">AnalogueModel</a> provides filtering of a <a class="el" href="a00192.html" title="The signal class stores the physical representation of the signal of an AirFrame.">Signal</a> according to the actual RadioStates the Radio were in during the Signal's time interval.  <a href="a00182.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00141.html">MiximRadio</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The class that represents the Radio as a state machine.  <a href="a00141.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00188.html">RSAMConstMappingIterator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">ConstMapingIterator implementation for a RSAM.  <a href="a00188.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html">RSAMMapping</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class represents the corresponding mapping to a <a class="el" href="a00182.html" title="This special AnalogueModel provides filtering of a Signal according to the actual RadioStates the Rad...">RadioStateAnalogueModel</a> (RSAM).  <a href="a00189.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00192.html">Signal</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The signal class stores the physical representation of the signal of an AirFrame.  <a href="a00192.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00135.html">MacToUWBIRPhyControlInfo</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This control info allows to store the <a class="el" href="a00099.html" title="This class regroups static methods needed to generate a pulse-level representation of an IEEE 802...">IEEE802154A</a> config parameters that were used to generate the accompanying signal.  <a href="a00135.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00173.html">PhyLayer</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides initialisation for several AnalogueModels and Deciders from modules directory.  <a href="a00173.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00174.html">PhyLayerBattery</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Extends <a class="el" href="a00173.html" title="Provides initialisation for several AnalogueModels and Deciders from modules directory.">PhyLayer</a> by adding power consumption for tx, rx and idle.  <a href="a00174.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html">PhyLayerUWBIR</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Physical layer that models an Ultra Wideband Impulse Radio wireless communication system.  <a href="a00175.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00183.html">RadioUWBIR</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This class extends the basic radio model.  <a href="a00183.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00190.html">SamplePhyLayer</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple <a class="el" href="a00173.html" title="Provides initialisation for several AnalogueModels and Deciders from modules directory.">PhyLayer</a> sub class which is just responsible for creating and initialising its own AnalogueModels and <a class="el" href="a00070.html" title="The basic Decider class.">Decider</a>.  <a href="a00190.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00511.html">analogueModels - AnalogueModel implementations</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00512.html">decider - decider modules</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="image">
<img src="BasePhyLayer.png" alt="BasePhyLayer.png"/>
<div class="caption">
BasePhyLayer class graph</div></div>
<p> The <a class="el" href="a00029.html" title="The BasePhyLayer represents the physical layer of a nic.">BasePhyLayer</a> class itself serves more or less only as container and glue between several subclasses. They can be described well by their task during the receiving process of an AirFrame:</p>
<div class="image">
<img src="RecvDetails.png" alt="RecvDetails.png"/>
<div class="caption">
Receiving process details</div></div>
<p> On reception of an new AirFrame <a class="el" href="a00029.html" title="The BasePhyLayer represents the physical layer of a nic.">BasePhyLayer</a> registers it at first with its <a class="el" href="a00043.html" title="This class is used by the BasePhyLayer to keep track of the AirFrames on the channel.">ChannelInfo</a> member which keeps track of all currently active AirFrames on the channel.</p>
<p>Then the signal contained in the AirFrame is handed to every <a class="el" href="a00009.html" title="Interface for the analogue models of the physical layer.">AnalogueModel</a> member of this phy layer. They calculate and add the attenuation effect of the channel on the signal during its transmission. A special <a class="el" href="a00009.html" title="Interface for the analogue models of the physical layer.">AnalogueModel</a> which every phy layer has is the <a class="el" href="a00009.html" title="Interface for the analogue models of the physical layer.">AnalogueModel</a> of the Radio member. It simulates the effect of the state of the radio (SLEEP, RX, TX) on the signal by defining an attenuation of 0% for the time the Radio is receiving and 100% for the other times (which means the signal couldn't be received at all).</p>
<p>After that the AirFrame is handed the first time to the <a class="el" href="a00070.html" title="The basic Decider class.">Decider</a> which has to decide if the AirFrame can and should be received or not. It also has to decide if the <a class="el" href="a00192.html" title="The signal class stores the physical representation of the signal of an AirFrame.">Signal</a> was received correctly or if there where errors. To do this it can tell the phy layer to hand the AirFrame to it at arbitrary other points in time during the transmission. The <a class="el" href="a00070.html" title="The basic Decider class.">Decider</a> also has to tell the phy layer when a received packet should be sent up to the upper layer.</p>
<p>At the end of the transmission <a class="el" href="a00029.html" title="The BasePhyLayer represents the physical layer of a nic.">BasePhyLayer</a> tells <a class="el" href="a00043.html" title="This class is used by the BasePhyLayer to keep track of the AirFrames on the channel.">ChannelInfo</a> that the AirFrame has ended.</p>
<div class="image">
<img src="RadioStatemachine.png" alt="RadioStatemachine.png"/>
<div class="caption">
Behaviour and cooperation of Radio, RadioStateAnalogueModel and ChannelInfo under control of BasePhyLayer</div></div>
<p> The statemachine-diagram above gives an overview on how Radio, <a class="el" href="a00182.html" title="This special AnalogueModel provides filtering of a Signal according to the actual RadioStates the Rad...">RadioStateAnalogueModel</a> (RSAM) and <a class="el" href="a00043.html" title="This class is used by the BasePhyLayer to keep track of the AirFrames on the channel.">ChannelInfo</a> work together under control of <a class="el" href="a00029.html" title="The BasePhyLayer represents the physical layer of a nic.">BasePhyLayer</a>.</p>
<p>NOTE: (Global) events in the diagram are denoted in the form "module.event", thus they only affect the particular module and are easier to find. Inside a module, an event is denoted without this prefix "module.". The term "module" is used here not in the sense of an OMNeT-module. The events "BasePhyLayer.AirFrame started", "BasePhyLayer.AirFrame ended" and "BasePhyLayer.E1" come from outside.</p>
<p>On the functionality of the <a class="el" href="a00182.html" title="This special AnalogueModel provides filtering of a Signal according to the actual RadioStates the Rad...">RadioStateAnalogueModel</a> (RSAM): RSAM is a passive database/entity module controlled and updated by <a class="el" href="a00029.html" title="The BasePhyLayer represents the physical layer of a nic.">BasePhyLayer</a> according to the state of the radio and the channel. RSAM filters incoming Signals by adding an attenuation-mapping corresponding to radio-states and therefore tracks information about the radio-state over time.</p>
<p>Since this stored information may not be needed for all time in the past, information that becomes obsolete can be discarded in RSAM by the CLEANUP-mechanism (blue transitions). Tracking of radio-states is switched on and off when the channel (see <a class="el" href="a00043.html" title="This class is used by the BasePhyLayer to keep track of the AirFrames on the channel.">ChannelInfo</a> states) becomes empty (tracking off, green transition) or becomes not empty (tracking on, red transition). </p>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>

    <li class="footer">Generated on Tue Mar 5 2013 21:26:31 for MiXiM by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>
